The present invention relates generally to data communications, and particularly to network switches implementing flow control for data having multiple classes of service.
The rapidly increasing popularity of networks such as the Internet has spurred the development of network services such as streaming audio and streaming video. These new services have different latency requirements than conventional network services such as electronic mail and file transfer. New quality of service (QoS) standards require that network devices, such as network switches, address these latency requirements. For example, the IEEE 802.1 standard divides network traffic into several classes of service based on sensitivity to transfer latency, and prioritizes these classes of service. The highest class of service is recommended for network control traffic, such as switch-to-switch configuration messages. The remaining classes are recommended for user traffic. The two highest user traffic classes of service are generally reserved for streaming audio and streaming video. Because the ear is more sensitive to missing data than the eye, the highest of the user traffic classes of service is used for streaming audio. The remaining lower classes of service are used for traffic that is less sensitive to transfer latency, such as electronic mail and file transfers.
Another desirable switch feature, referred to as “flow control,” prevents the switch from discarding or “dropping” frames. One flow control technique is defined by the IEEE 802.3 standard. When a switch implementing the standard becomes congested, it can exercise flow control by sending a “pause” frame to one or more link partners. In response, the link partners stop sending frames to the switch until the switch sends a “pause release” frame, or until an interval specified by the “pause” frame elapses. Thus flow control allows a switch to regulate the flow of inbound data.
However, the IEEE 802.3 flow control standard has no provision for quality of service. Therefore, when flow control is exercised on a channel under IEEE 802.3, it applies to all classes of service. High-priority traffic is delayed as long as low-priority traffic. Thus when flow control under IEEE 802.3 is imposed, quality of service cannot be achieved.